{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Example-7-MGP-BS-Pricing\n",
    "# Author: Matthew Dixon\n",
    "# Version: 1.0 (28.4.2020)\n",
    "# License: MIT\n",
    "# Email: matthew.dixon@iit.edu\n",
    "# Notes: tested on Mac OS X running Python 3.6.9 with the following packages:\n",
    "# scikit-learn=0.22.1, numpy=1.18.1, matplotlib=3.1.3, gpytorch=0.1.0, torch=1.5.0, scipy=1.4.1\n",
    "# Citation: Please cite the following reference if this notebook is used for research purposes:\n",
    "# Dixon M.F. Halperin I. and P. Bilokon, Machine Learning in Finance: From Theory to Practice, Springer Graduate textbook Series, 2020. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Overview\n",
    "The purpose of this notebook is to demonstrate the fitting of a multi-response Gaussian Process Regression model (GP) to the prices of two options. In this notebook, the prices of a call and put are generated from the Black-Scholes model.  The notebook begins by building a multi-GP model, and then evaluates the error.\n",
    "\n",
    "Finally the notebook studies the posterior covariance term which is uniquely available in the multi-GP model. See Section 6 for further details."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "import gpytorch\n",
    "import numpy as np\n",
    "from BlackScholes import bsformula\n",
    "from matplotlib import pyplot as plt\n",
    "from scipy import stats  \n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Black-Scholes Model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, set the model parameters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = 0.0     # risk-free rate\n",
    "S= 100      # Underlying spot\n",
    "KC = 110    # Call strike\n",
    "KP = 90     # Put strike\n",
    "sigma = 0.3 # implied volatility\n",
    "T = 2.0     # Time to maturity"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Define the call and put prices using the BS model\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "call = lambda x: bsformula(1, lb+(ub-lb)*x, KC, r, T, sigma, 0)[0]\n",
    "put = lambda x: bsformula(-1, lb+(ub-lb)*x, KP, r, T, sigma, 0)[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Create an input vector representing the underlying and output vectors `train_y1` and `train_y2` representing the call and put prices respectively from the Black-Scholes model. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "lb = 0.001             # lower bound on domain\n",
    "ub = 300               # upper bound on domain\n",
    "training_number = 50   # Number of training samples\n",
    "testing_number =  100  # Number of testing samples\n",
    "\n",
    "train_x = torch.linspace(0, 1.0, training_number)\n",
    "train_y1 = torch.FloatTensor(call(np.array(train_x)))\n",
    "train_y2 = torch.FloatTensor(put(np.array(train_x)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Create `train_y` which stacks the two into a tensor for training a model which outputs both quantities"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_y = torch.stack([train_y1, train_y2], -1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Observe the first few elements of `train_y`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "         Call        Put\n",
      "tensor([[0.0000e+00, 8.9999e+01],\n",
      "        [7.5293e-12, 8.3877e+01],\n",
      "        [3.1548e-07, 7.7754e+01],\n",
      "        [4.9525e-05, 7.1632e+01],\n",
      "        [1.0728e-03, 6.5515e+01]])\n"
     ]
    }
   ],
   "source": [
    "print('         Call        Put')\n",
    "print(train_y[:5])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We generate some testing data in the same way"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_x = torch.linspace(0, 1.0, testing_number)\n",
    "test_y1 = torch.FloatTensor(call(np.array(test_x)))\n",
    "test_y2 = torch.FloatTensor(put(np.array(test_x)))\n",
    "test_y = torch.stack([test_y1, test_y2], -1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Multi-Reponse GP Model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here we create the class which defines the architecture of our GP model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "class MultitaskGPModel(gpytorch.models.ExactGP):\n",
    "    def __init__(self, train_x, train_y, likelihood):\n",
    "        super(MultitaskGPModel, self).__init__(train_x, train_y, likelihood)\n",
    "        \n",
    "        self.mean_module = gpytorch.means.MultitaskMean(\n",
    "            gpytorch.means.ConstantMean(), num_tasks=2\n",
    "        )\n",
    "        \n",
    "        self.covar_module = gpytorch.kernels.MultitaskKernel(gpytorch.kernels.ScaleKernel(\n",
    "            gpytorch.kernels.MaternKernel(nu=2.5)), num_tasks=2, rank=1\n",
    "        )\n",
    "    \n",
    "    def forward(self, x):\n",
    "        mean_x = self.mean_module(x)\n",
    "        covar_x = self.covar_module(x)\n",
    "        return gpytorch.distributions.MultitaskMultivariateNormal(mean_x, covar_x)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Fit the multi-GP model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iter 1/300 - Loss: 16048.178 lengthscale: 0.693 noise: 0.693\n",
      "Iter 2/300 - Loss: 12671.662 lengthscale: 0.644 noise: 0.744\n",
      "Iter 3/300 - Loss: 10046.484 lengthscale: 0.599 noise: 0.797\n",
      "Iter 4/300 - Loss: 8029.679 lengthscale: 0.556 noise: 0.849\n",
      "Iter 5/300 - Loss: 6491.721 lengthscale: 0.516 noise: 0.901\n",
      "Iter 6/300 - Loss: 5324.402 lengthscale: 0.480 noise: 0.952\n",
      "Iter 7/300 - Loss: 4439.858 lengthscale: 0.447 noise: 1.000\n",
      "Iter 8/300 - Loss: 3767.869 lengthscale: 0.418 noise: 1.046\n",
      "Iter 9/300 - Loss: 3253.600 lengthscale: 0.391 noise: 1.090\n",
      "Iter 10/300 - Loss: 2855.487 lengthscale: 0.368 noise: 1.132\n",
      "Iter 11/300 - Loss: 2542.911 lengthscale: 0.347 noise: 1.171\n",
      "Iter 12/300 - Loss: 2293.749 lengthscale: 0.328 noise: 1.208\n",
      "Iter 13/300 - Loss: 2092.149 lengthscale: 0.312 noise: 1.243\n",
      "Iter 14/300 - Loss: 1926.710 lengthscale: 0.298 noise: 1.275\n",
      "Iter 15/300 - Loss: 1789.148 lengthscale: 0.285 noise: 1.305\n",
      "Iter 16/300 - Loss: 1673.352 lengthscale: 0.274 noise: 1.334\n",
      "Iter 17/300 - Loss: 1574.755 lengthscale: 0.265 noise: 1.361\n",
      "Iter 18/300 - Loss: 1489.900 lengthscale: 0.256 noise: 1.386\n",
      "Iter 19/300 - Loss: 1416.138 lengthscale: 0.249 noise: 1.409\n",
      "Iter 20/300 - Loss: 1351.422 lengthscale: 0.242 noise: 1.431\n",
      "Iter 21/300 - Loss: 1294.153 lengthscale: 0.237 noise: 1.451\n",
      "Iter 22/300 - Loss: 1243.075 lengthscale: 0.232 noise: 1.470\n",
      "Iter 23/300 - Loss: 1197.191 lengthscale: 0.227 noise: 1.488\n",
      "Iter 24/300 - Loss: 1155.702 lengthscale: 0.224 noise: 1.505\n",
      "Iter 25/300 - Loss: 1117.968 lengthscale: 0.220 noise: 1.520\n",
      "Iter 26/300 - Loss: 1083.466 lengthscale: 0.218 noise: 1.535\n",
      "Iter 27/300 - Loss: 1051.771 lengthscale: 0.216 noise: 1.548\n",
      "Iter 28/300 - Loss: 1022.530 lengthscale: 0.214 noise: 1.561\n",
      "Iter 29/300 - Loss: 995.453 lengthscale: 0.212 noise: 1.573\n",
      "Iter 30/300 - Loss: 970.295 lengthscale: 0.211 noise: 1.584\n",
      "Iter 31/300 - Loss: 946.850 lengthscale: 0.210 noise: 1.594\n",
      "Iter 32/300 - Loss: 924.945 lengthscale: 0.209 noise: 1.604\n",
      "Iter 33/300 - Loss: 904.429 lengthscale: 0.209 noise: 1.613\n",
      "Iter 34/300 - Loss: 885.174 lengthscale: 0.209 noise: 1.621\n",
      "Iter 35/300 - Loss: 867.068 lengthscale: 0.209 noise: 1.629\n",
      "Iter 36/300 - Loss: 850.012 lengthscale: 0.209 noise: 1.637\n",
      "Iter 37/300 - Loss: 833.920 lengthscale: 0.209 noise: 1.644\n",
      "Iter 38/300 - Loss: 818.717 lengthscale: 0.209 noise: 1.650\n",
      "Iter 39/300 - Loss: 804.332 lengthscale: 0.210 noise: 1.656\n",
      "Iter 40/300 - Loss: 790.705 lengthscale: 0.210 noise: 1.662\n",
      "Iter 41/300 - Loss: 777.781 lengthscale: 0.211 noise: 1.668\n",
      "Iter 42/300 - Loss: 765.509 lengthscale: 0.212 noise: 1.673\n",
      "Iter 43/300 - Loss: 753.843 lengthscale: 0.213 noise: 1.678\n",
      "Iter 44/300 - Loss: 742.741 lengthscale: 0.213 noise: 1.683\n",
      "Iter 45/300 - Loss: 732.165 lengthscale: 0.214 noise: 1.687\n",
      "Iter 46/300 - Loss: 722.080 lengthscale: 0.215 noise: 1.691\n",
      "Iter 47/300 - Loss: 712.452 lengthscale: 0.216 noise: 1.695\n",
      "Iter 48/300 - Loss: 703.253 lengthscale: 0.217 noise: 1.699\n",
      "Iter 49/300 - Loss: 694.452 lengthscale: 0.218 noise: 1.702\n",
      "Iter 50/300 - Loss: 686.026 lengthscale: 0.219 noise: 1.706\n",
      "Iter 51/300 - Loss: 677.950 lengthscale: 0.220 noise: 1.709\n",
      "Iter 52/300 - Loss: 670.201 lengthscale: 0.221 noise: 1.712\n",
      "Iter 53/300 - Loss: 662.758 lengthscale: 0.223 noise: 1.715\n",
      "Iter 54/300 - Loss: 655.603 lengthscale: 0.224 noise: 1.718\n",
      "Iter 55/300 - Loss: 648.717 lengthscale: 0.225 noise: 1.721\n",
      "Iter 56/300 - Loss: 642.083 lengthscale: 0.226 noise: 1.723\n",
      "Iter 57/300 - Loss: 635.686 lengthscale: 0.227 noise: 1.726\n",
      "Iter 58/300 - Loss: 629.512 lengthscale: 0.227 noise: 1.728\n",
      "Iter 59/300 - Loss: 623.547 lengthscale: 0.228 noise: 1.731\n",
      "Iter 60/300 - Loss: 617.777 lengthscale: 0.229 noise: 1.733\n",
      "Iter 61/300 - Loss: 612.192 lengthscale: 0.230 noise: 1.735\n",
      "Iter 62/300 - Loss: 606.781 lengthscale: 0.231 noise: 1.737\n",
      "Iter 63/300 - Loss: 601.534 lengthscale: 0.232 noise: 1.739\n",
      "Iter 64/300 - Loss: 596.440 lengthscale: 0.233 noise: 1.741\n",
      "Iter 65/300 - Loss: 591.492 lengthscale: 0.233 noise: 1.743\n",
      "Iter 66/300 - Loss: 586.680 lengthscale: 0.234 noise: 1.745\n",
      "Iter 67/300 - Loss: 581.998 lengthscale: 0.235 noise: 1.747\n",
      "Iter 68/300 - Loss: 577.439 lengthscale: 0.236 noise: 1.748\n",
      "Iter 69/300 - Loss: 572.995 lengthscale: 0.236 noise: 1.750\n",
      "Iter 70/300 - Loss: 568.662 lengthscale: 0.237 noise: 1.752\n",
      "Iter 71/300 - Loss: 564.432 lengthscale: 0.237 noise: 1.753\n",
      "Iter 72/300 - Loss: 560.302 lengthscale: 0.238 noise: 1.755\n",
      "Iter 73/300 - Loss: 556.265 lengthscale: 0.238 noise: 1.757\n",
      "Iter 74/300 - Loss: 552.318 lengthscale: 0.239 noise: 1.758\n",
      "Iter 75/300 - Loss: 548.456 lengthscale: 0.239 noise: 1.760\n",
      "Iter 76/300 - Loss: 544.675 lengthscale: 0.240 noise: 1.761\n",
      "Iter 77/300 - Loss: 540.972 lengthscale: 0.240 noise: 1.763\n",
      "Iter 78/300 - Loss: 537.343 lengthscale: 0.241 noise: 1.764\n",
      "Iter 79/300 - Loss: 533.785 lengthscale: 0.241 noise: 1.765\n",
      "Iter 80/300 - Loss: 530.296 lengthscale: 0.241 noise: 1.767\n",
      "Iter 81/300 - Loss: 526.871 lengthscale: 0.241 noise: 1.768\n",
      "Iter 82/300 - Loss: 523.510 lengthscale: 0.242 noise: 1.769\n",
      "Iter 83/300 - Loss: 520.208 lengthscale: 0.242 noise: 1.771\n",
      "Iter 84/300 - Loss: 516.965 lengthscale: 0.242 noise: 1.772\n",
      "Iter 85/300 - Loss: 513.778 lengthscale: 0.242 noise: 1.773\n",
      "Iter 86/300 - Loss: 510.645 lengthscale: 0.243 noise: 1.774\n",
      "Iter 87/300 - Loss: 507.564 lengthscale: 0.243 noise: 1.775\n",
      "Iter 88/300 - Loss: 504.534 lengthscale: 0.243 noise: 1.777\n",
      "Iter 89/300 - Loss: 501.552 lengthscale: 0.243 noise: 1.778\n",
      "Iter 90/300 - Loss: 498.618 lengthscale: 0.243 noise: 1.779\n",
      "Iter 91/300 - Loss: 495.730 lengthscale: 0.243 noise: 1.780\n",
      "Iter 92/300 - Loss: 492.886 lengthscale: 0.243 noise: 1.781\n",
      "Iter 93/300 - Loss: 490.085 lengthscale: 0.243 noise: 1.782\n",
      "Iter 94/300 - Loss: 487.327 lengthscale: 0.243 noise: 1.783\n",
      "Iter 95/300 - Loss: 484.609 lengthscale: 0.243 noise: 1.784\n",
      "Iter 96/300 - Loss: 481.931 lengthscale: 0.243 noise: 1.785\n",
      "Iter 97/300 - Loss: 479.292 lengthscale: 0.243 noise: 1.786\n",
      "Iter 98/300 - Loss: 476.691 lengthscale: 0.243 noise: 1.787\n",
      "Iter 99/300 - Loss: 474.126 lengthscale: 0.243 noise: 1.788\n",
      "Iter 100/300 - Loss: 471.598 lengthscale: 0.243 noise: 1.789\n",
      "Iter 101/300 - Loss: 469.104 lengthscale: 0.243 noise: 1.790\n",
      "Iter 102/300 - Loss: 466.645 lengthscale: 0.243 noise: 1.791\n",
      "Iter 103/300 - Loss: 464.219 lengthscale: 0.243 noise: 1.792\n",
      "Iter 104/300 - Loss: 461.826 lengthscale: 0.243 noise: 1.793\n",
      "Iter 105/300 - Loss: 459.464 lengthscale: 0.243 noise: 1.794\n",
      "Iter 106/300 - Loss: 457.134 lengthscale: 0.243 noise: 1.794\n",
      "Iter 107/300 - Loss: 454.835 lengthscale: 0.243 noise: 1.795\n",
      "Iter 108/300 - Loss: 452.566 lengthscale: 0.243 noise: 1.796\n",
      "Iter 109/300 - Loss: 450.326 lengthscale: 0.243 noise: 1.797\n",
      "Iter 110/300 - Loss: 448.114 lengthscale: 0.242 noise: 1.798\n",
      "Iter 111/300 - Loss: 445.931 lengthscale: 0.242 noise: 1.798\n",
      "Iter 112/300 - Loss: 443.776 lengthscale: 0.242 noise: 1.799\n",
      "Iter 113/300 - Loss: 441.647 lengthscale: 0.242 noise: 1.800\n",
      "Iter 114/300 - Loss: 439.545 lengthscale: 0.242 noise: 1.801\n",
      "Iter 115/300 - Loss: 437.469 lengthscale: 0.242 noise: 1.801\n",
      "Iter 116/300 - Loss: 435.419 lengthscale: 0.242 noise: 1.802\n",
      "Iter 117/300 - Loss: 433.393 lengthscale: 0.242 noise: 1.803\n",
      "Iter 118/300 - Loss: 431.392 lengthscale: 0.242 noise: 1.803\n",
      "Iter 119/300 - Loss: 429.416 lengthscale: 0.241 noise: 1.804\n",
      "Iter 120/300 - Loss: 427.462 lengthscale: 0.241 noise: 1.805\n",
      "Iter 121/300 - Loss: 425.533 lengthscale: 0.241 noise: 1.805\n",
      "Iter 122/300 - Loss: 423.626 lengthscale: 0.241 noise: 1.806\n",
      "Iter 123/300 - Loss: 421.741 lengthscale: 0.241 noise: 1.806\n",
      "Iter 124/300 - Loss: 419.878 lengthscale: 0.241 noise: 1.807\n",
      "Iter 125/300 - Loss: 418.037 lengthscale: 0.241 noise: 1.808\n",
      "Iter 126/300 - Loss: 416.218 lengthscale: 0.241 noise: 1.808\n",
      "Iter 127/300 - Loss: 414.419 lengthscale: 0.240 noise: 1.809\n",
      "Iter 128/300 - Loss: 412.640 lengthscale: 0.240 noise: 1.809\n",
      "Iter 129/300 - Loss: 410.882 lengthscale: 0.240 noise: 1.810\n",
      "Iter 130/300 - Loss: 409.144 lengthscale: 0.240 noise: 1.810\n",
      "Iter 131/300 - Loss: 407.425 lengthscale: 0.240 noise: 1.811\n",
      "Iter 132/300 - Loss: 405.725 lengthscale: 0.240 noise: 1.811\n",
      "Iter 133/300 - Loss: 404.044 lengthscale: 0.240 noise: 1.812\n",
      "Iter 134/300 - Loss: 402.382 lengthscale: 0.240 noise: 1.812\n",
      "Iter 135/300 - Loss: 400.738 lengthscale: 0.239 noise: 1.812\n",
      "Iter 136/300 - Loss: 399.112 lengthscale: 0.239 noise: 1.813\n",
      "Iter 137/300 - Loss: 397.503 lengthscale: 0.239 noise: 1.813\n",
      "Iter 138/300 - Loss: 395.912 lengthscale: 0.239 noise: 1.814\n",
      "Iter 139/300 - Loss: 394.338 lengthscale: 0.239 noise: 1.814\n",
      "Iter 140/300 - Loss: 392.781 lengthscale: 0.239 noise: 1.814\n",
      "Iter 141/300 - Loss: 391.240 lengthscale: 0.239 noise: 1.815\n",
      "Iter 142/300 - Loss: 389.715 lengthscale: 0.239 noise: 1.815\n",
      "Iter 143/300 - Loss: 388.207 lengthscale: 0.239 noise: 1.815\n",
      "Iter 144/300 - Loss: 386.714 lengthscale: 0.238 noise: 1.816\n",
      "Iter 145/300 - Loss: 385.237 lengthscale: 0.238 noise: 1.816\n",
      "Iter 146/300 - Loss: 383.775 lengthscale: 0.238 noise: 1.816\n",
      "Iter 147/300 - Loss: 382.328 lengthscale: 0.238 noise: 1.817\n",
      "Iter 148/300 - Loss: 380.896 lengthscale: 0.238 noise: 1.817\n",
      "Iter 149/300 - Loss: 379.478 lengthscale: 0.238 noise: 1.817\n",
      "Iter 150/300 - Loss: 378.075 lengthscale: 0.238 noise: 1.817\n",
      "Iter 151/300 - Loss: 376.686 lengthscale: 0.238 noise: 1.818\n",
      "Iter 152/300 - Loss: 375.311 lengthscale: 0.238 noise: 1.818\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iter 153/300 - Loss: 373.950 lengthscale: 0.238 noise: 1.818\n",
      "Iter 154/300 - Loss: 372.602 lengthscale: 0.237 noise: 1.818\n",
      "Iter 155/300 - Loss: 371.267 lengthscale: 0.237 noise: 1.818\n",
      "Iter 156/300 - Loss: 369.946 lengthscale: 0.237 noise: 1.819\n",
      "Iter 157/300 - Loss: 368.637 lengthscale: 0.237 noise: 1.819\n",
      "Iter 158/300 - Loss: 367.342 lengthscale: 0.237 noise: 1.819\n",
      "Iter 159/300 - Loss: 366.058 lengthscale: 0.237 noise: 1.819\n",
      "Iter 160/300 - Loss: 364.787 lengthscale: 0.237 noise: 1.819\n",
      "Iter 161/300 - Loss: 363.529 lengthscale: 0.237 noise: 1.819\n",
      "Iter 162/300 - Loss: 362.282 lengthscale: 0.237 noise: 1.819\n",
      "Iter 163/300 - Loss: 361.047 lengthscale: 0.237 noise: 1.819\n",
      "Iter 164/300 - Loss: 359.824 lengthscale: 0.236 noise: 1.820\n",
      "Iter 165/300 - Loss: 358.612 lengthscale: 0.236 noise: 1.820\n",
      "Iter 166/300 - Loss: 357.412 lengthscale: 0.236 noise: 1.820\n",
      "Iter 167/300 - Loss: 356.223 lengthscale: 0.236 noise: 1.820\n",
      "Iter 168/300 - Loss: 355.044 lengthscale: 0.236 noise: 1.820\n",
      "Iter 169/300 - Loss: 353.877 lengthscale: 0.236 noise: 1.820\n",
      "Iter 170/300 - Loss: 352.720 lengthscale: 0.236 noise: 1.820\n",
      "Iter 171/300 - Loss: 351.575 lengthscale: 0.236 noise: 1.820\n",
      "Iter 172/300 - Loss: 350.439 lengthscale: 0.236 noise: 1.820\n",
      "Iter 173/300 - Loss: 349.314 lengthscale: 0.236 noise: 1.820\n",
      "Iter 174/300 - Loss: 348.199 lengthscale: 0.236 noise: 1.820\n",
      "Iter 175/300 - Loss: 347.093 lengthscale: 0.236 noise: 1.820\n",
      "Iter 176/300 - Loss: 345.998 lengthscale: 0.236 noise: 1.820\n",
      "Iter 177/300 - Loss: 344.913 lengthscale: 0.235 noise: 1.820\n",
      "Iter 178/300 - Loss: 343.837 lengthscale: 0.235 noise: 1.820\n",
      "Iter 179/300 - Loss: 342.770 lengthscale: 0.235 noise: 1.819\n",
      "Iter 180/300 - Loss: 341.713 lengthscale: 0.235 noise: 1.819\n",
      "Iter 181/300 - Loss: 340.665 lengthscale: 0.235 noise: 1.819\n",
      "Iter 182/300 - Loss: 339.626 lengthscale: 0.235 noise: 1.819\n",
      "Iter 183/300 - Loss: 338.596 lengthscale: 0.235 noise: 1.819\n",
      "Iter 184/300 - Loss: 337.576 lengthscale: 0.235 noise: 1.819\n",
      "Iter 185/300 - Loss: 336.563 lengthscale: 0.235 noise: 1.819\n",
      "Iter 186/300 - Loss: 335.560 lengthscale: 0.235 noise: 1.819\n",
      "Iter 187/300 - Loss: 334.565 lengthscale: 0.235 noise: 1.818\n",
      "Iter 188/300 - Loss: 333.578 lengthscale: 0.235 noise: 1.818\n",
      "Iter 189/300 - Loss: 332.600 lengthscale: 0.235 noise: 1.818\n",
      "Iter 190/300 - Loss: 331.630 lengthscale: 0.235 noise: 1.818\n",
      "Iter 191/300 - Loss: 330.667 lengthscale: 0.234 noise: 1.818\n",
      "Iter 192/300 - Loss: 329.714 lengthscale: 0.234 noise: 1.818\n",
      "Iter 193/300 - Loss: 328.767 lengthscale: 0.234 noise: 1.817\n",
      "Iter 194/300 - Loss: 327.829 lengthscale: 0.234 noise: 1.817\n",
      "Iter 195/300 - Loss: 326.898 lengthscale: 0.234 noise: 1.817\n",
      "Iter 196/300 - Loss: 325.975 lengthscale: 0.234 noise: 1.817\n",
      "Iter 197/300 - Loss: 325.060 lengthscale: 0.234 noise: 1.816\n",
      "Iter 198/300 - Loss: 324.152 lengthscale: 0.234 noise: 1.816\n",
      "Iter 199/300 - Loss: 323.251 lengthscale: 0.234 noise: 1.816\n",
      "Iter 200/300 - Loss: 322.357 lengthscale: 0.234 noise: 1.816\n",
      "Iter 201/300 - Loss: 321.471 lengthscale: 0.234 noise: 1.815\n",
      "Iter 202/300 - Loss: 320.591 lengthscale: 0.234 noise: 1.815\n",
      "Iter 203/300 - Loss: 319.719 lengthscale: 0.234 noise: 1.815\n",
      "Iter 204/300 - Loss: 318.853 lengthscale: 0.234 noise: 1.814\n",
      "Iter 205/300 - Loss: 317.994 lengthscale: 0.234 noise: 1.814\n",
      "Iter 206/300 - Loss: 317.142 lengthscale: 0.234 noise: 1.814\n",
      "Iter 207/300 - Loss: 316.297 lengthscale: 0.234 noise: 1.813\n",
      "Iter 208/300 - Loss: 315.458 lengthscale: 0.233 noise: 1.813\n",
      "Iter 209/300 - Loss: 314.625 lengthscale: 0.233 noise: 1.813\n",
      "Iter 210/300 - Loss: 313.799 lengthscale: 0.233 noise: 1.812\n",
      "Iter 211/300 - Loss: 312.980 lengthscale: 0.233 noise: 1.812\n",
      "Iter 212/300 - Loss: 312.166 lengthscale: 0.233 noise: 1.812\n",
      "Iter 213/300 - Loss: 311.359 lengthscale: 0.233 noise: 1.811\n",
      "Iter 214/300 - Loss: 310.557 lengthscale: 0.233 noise: 1.811\n",
      "Iter 215/300 - Loss: 309.762 lengthscale: 0.233 noise: 1.810\n",
      "Iter 216/300 - Loss: 308.973 lengthscale: 0.233 noise: 1.810\n",
      "Iter 217/300 - Loss: 308.190 lengthscale: 0.233 noise: 1.810\n",
      "Iter 218/300 - Loss: 307.412 lengthscale: 0.233 noise: 1.809\n",
      "Iter 219/300 - Loss: 306.640 lengthscale: 0.233 noise: 1.809\n",
      "Iter 220/300 - Loss: 305.875 lengthscale: 0.233 noise: 1.808\n",
      "Iter 221/300 - Loss: 305.114 lengthscale: 0.233 noise: 1.808\n",
      "Iter 222/300 - Loss: 304.359 lengthscale: 0.233 noise: 1.807\n",
      "Iter 223/300 - Loss: 303.610 lengthscale: 0.233 noise: 1.807\n",
      "Iter 224/300 - Loss: 302.866 lengthscale: 0.233 noise: 1.806\n",
      "Iter 225/300 - Loss: 302.127 lengthscale: 0.233 noise: 1.806\n",
      "Iter 226/300 - Loss: 301.394 lengthscale: 0.233 noise: 1.805\n",
      "Iter 227/300 - Loss: 300.666 lengthscale: 0.232 noise: 1.805\n",
      "Iter 228/300 - Loss: 299.943 lengthscale: 0.232 noise: 1.804\n",
      "Iter 229/300 - Loss: 299.226 lengthscale: 0.232 noise: 1.804\n",
      "Iter 230/300 - Loss: 298.513 lengthscale: 0.232 noise: 1.803\n",
      "Iter 231/300 - Loss: 297.806 lengthscale: 0.232 noise: 1.803\n",
      "Iter 232/300 - Loss: 297.103 lengthscale: 0.232 noise: 1.802\n",
      "Iter 233/300 - Loss: 296.405 lengthscale: 0.232 noise: 1.802\n",
      "Iter 234/300 - Loss: 295.712 lengthscale: 0.232 noise: 1.801\n",
      "Iter 235/300 - Loss: 295.024 lengthscale: 0.232 noise: 1.800\n",
      "Iter 236/300 - Loss: 294.341 lengthscale: 0.232 noise: 1.800\n",
      "Iter 237/300 - Loss: 293.663 lengthscale: 0.232 noise: 1.799\n",
      "Iter 238/300 - Loss: 292.989 lengthscale: 0.232 noise: 1.799\n",
      "Iter 239/300 - Loss: 292.319 lengthscale: 0.232 noise: 1.798\n",
      "Iter 240/300 - Loss: 291.655 lengthscale: 0.232 noise: 1.797\n",
      "Iter 241/300 - Loss: 290.995 lengthscale: 0.232 noise: 1.797\n",
      "Iter 242/300 - Loss: 290.339 lengthscale: 0.232 noise: 1.796\n",
      "Iter 243/300 - Loss: 289.687 lengthscale: 0.232 noise: 1.795\n",
      "Iter 244/300 - Loss: 289.040 lengthscale: 0.232 noise: 1.795\n",
      "Iter 245/300 - Loss: 288.398 lengthscale: 0.232 noise: 1.794\n",
      "Iter 246/300 - Loss: 287.759 lengthscale: 0.232 noise: 1.793\n",
      "Iter 247/300 - Loss: 287.125 lengthscale: 0.232 noise: 1.793\n",
      "Iter 248/300 - Loss: 286.495 lengthscale: 0.232 noise: 1.792\n",
      "Iter 249/300 - Loss: 285.869 lengthscale: 0.232 noise: 1.791\n",
      "Iter 250/300 - Loss: 285.248 lengthscale: 0.232 noise: 1.791\n",
      "Iter 251/300 - Loss: 284.630 lengthscale: 0.231 noise: 1.790\n",
      "Iter 252/300 - Loss: 284.016 lengthscale: 0.231 noise: 1.789\n",
      "Iter 253/300 - Loss: 283.406 lengthscale: 0.231 noise: 1.789\n",
      "Iter 254/300 - Loss: 282.800 lengthscale: 0.231 noise: 1.788\n",
      "Iter 255/300 - Loss: 282.198 lengthscale: 0.231 noise: 1.787\n",
      "Iter 256/300 - Loss: 281.600 lengthscale: 0.231 noise: 1.786\n",
      "Iter 257/300 - Loss: 281.006 lengthscale: 0.231 noise: 1.786\n",
      "Iter 258/300 - Loss: 280.416 lengthscale: 0.231 noise: 1.785\n",
      "Iter 259/300 - Loss: 279.829 lengthscale: 0.231 noise: 1.784\n",
      "Iter 260/300 - Loss: 279.246 lengthscale: 0.231 noise: 1.783\n",
      "Iter 261/300 - Loss: 278.666 lengthscale: 0.231 noise: 1.783\n",
      "Iter 262/300 - Loss: 278.090 lengthscale: 0.231 noise: 1.782\n",
      "Iter 263/300 - Loss: 277.518 lengthscale: 0.231 noise: 1.781\n",
      "Iter 264/300 - Loss: 276.950 lengthscale: 0.231 noise: 1.780\n",
      "Iter 265/300 - Loss: 276.384 lengthscale: 0.231 noise: 1.779\n",
      "Iter 266/300 - Loss: 275.823 lengthscale: 0.231 noise: 1.779\n",
      "Iter 267/300 - Loss: 275.264 lengthscale: 0.231 noise: 1.778\n",
      "Iter 268/300 - Loss: 274.710 lengthscale: 0.231 noise: 1.777\n",
      "Iter 269/300 - Loss: 274.158 lengthscale: 0.231 noise: 1.776\n",
      "Iter 270/300 - Loss: 273.610 lengthscale: 0.231 noise: 1.775\n",
      "Iter 271/300 - Loss: 273.065 lengthscale: 0.231 noise: 1.774\n",
      "Iter 272/300 - Loss: 272.524 lengthscale: 0.231 noise: 1.774\n",
      "Iter 273/300 - Loss: 271.985 lengthscale: 0.231 noise: 1.773\n",
      "Iter 274/300 - Loss: 271.450 lengthscale: 0.231 noise: 1.772\n",
      "Iter 275/300 - Loss: 270.919 lengthscale: 0.231 noise: 1.771\n",
      "Iter 276/300 - Loss: 270.390 lengthscale: 0.231 noise: 1.770\n",
      "Iter 277/300 - Loss: 269.864 lengthscale: 0.231 noise: 1.769\n",
      "Iter 278/300 - Loss: 269.342 lengthscale: 0.231 noise: 1.768\n",
      "Iter 279/300 - Loss: 268.822 lengthscale: 0.230 noise: 1.767\n",
      "Iter 280/300 - Loss: 268.306 lengthscale: 0.230 noise: 1.766\n",
      "Iter 281/300 - Loss: 267.792 lengthscale: 0.230 noise: 1.765\n",
      "Iter 282/300 - Loss: 267.282 lengthscale: 0.230 noise: 1.765\n",
      "Iter 283/300 - Loss: 266.775 lengthscale: 0.230 noise: 1.764\n",
      "Iter 284/300 - Loss: 266.270 lengthscale: 0.230 noise: 1.763\n",
      "Iter 285/300 - Loss: 265.768 lengthscale: 0.230 noise: 1.762\n",
      "Iter 286/300 - Loss: 265.269 lengthscale: 0.230 noise: 1.761\n",
      "Iter 287/300 - Loss: 264.774 lengthscale: 0.230 noise: 1.760\n",
      "Iter 288/300 - Loss: 264.280 lengthscale: 0.230 noise: 1.759\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iter 289/300 - Loss: 263.790 lengthscale: 0.230 noise: 1.758\n",
      "Iter 290/300 - Loss: 263.302 lengthscale: 0.230 noise: 1.757\n",
      "Iter 291/300 - Loss: 262.818 lengthscale: 0.230 noise: 1.756\n",
      "Iter 292/300 - Loss: 262.335 lengthscale: 0.230 noise: 1.755\n",
      "Iter 293/300 - Loss: 261.856 lengthscale: 0.230 noise: 1.754\n",
      "Iter 294/300 - Loss: 261.379 lengthscale: 0.230 noise: 1.753\n",
      "Iter 295/300 - Loss: 260.905 lengthscale: 0.230 noise: 1.752\n",
      "Iter 296/300 - Loss: 260.433 lengthscale: 0.230 noise: 1.751\n",
      "Iter 297/300 - Loss: 259.964 lengthscale: 0.230 noise: 1.750\n",
      "Iter 298/300 - Loss: 259.498 lengthscale: 0.230 noise: 1.749\n",
      "Iter 299/300 - Loss: 259.034 lengthscale: 0.230 noise: 1.748\n",
      "Iter 300/300 - Loss: 258.573 lengthscale: 0.230 noise: 1.746\n"
     ]
    }
   ],
   "source": [
    "likelihood = gpytorch.likelihoods.MultitaskGaussianLikelihood(num_tasks=2)\n",
    "model = MultitaskGPModel(train_x, train_y, likelihood)\n",
    "\n",
    "model.train()\n",
    "likelihood.train()\n",
    "\n",
    "# Use the adam optimizer\n",
    "optimizer = torch.optim.Adam([\n",
    "    {'params': model.parameters()},  # Includes GaussianLikelihood parameters\n",
    "], lr=0.1)\n",
    "\n",
    "# \"Loss\" for GPs - the marginal log likelihood\n",
    "mll = gpytorch.mlls.ExactMarginalLogLikelihood(likelihood, model)\n",
    "\n",
    "n_iter = 300\n",
    "for i in range(n_iter):\n",
    "    optimizer.zero_grad()\n",
    "    output = model(train_x)\n",
    "    loss = -mll(output, train_y)\n",
    "    loss.backward()\n",
    "    print('Iter %d/%d - Loss: %.3f lengthscale: %.3f noise: %.3f' % (i + 1, n_iter, loss.item(), model.covar_module.data_covar_module.base_kernel.lengthscale, likelihood.noise))\n",
    "    \n",
    "    optimizer.step()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Use the fitted model to predict the call and put values of the test set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.eval()\n",
    "likelihood.eval()\n",
    "with torch.no_grad(), gpytorch.settings.fast_pred_var():\n",
    "    y_hat = likelihood(model(test_x))\n",
    "lower, upper = y_hat.confidence_region()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Print the fitted parameters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([[0.2299]], grad_fn=<SoftplusBackward>)\n",
      "tensor([1.7454], grad_fn=<AddBackward0>)\n",
      "2.5\n",
      "[[18.370888  -0.8960136]\n",
      " [-0.8960136  7.092246 ]]\n"
     ]
    }
   ],
   "source": [
    "a = model.covar_module.task_covar_module.covar_factor.clone().detach()\n",
    "v = model.covar_module.task_covar_module.var.clone().detach()\n",
    "Omega = np.outer(a,a) + np.diag(v)\n",
    "lengthscale = model.covar_module.data_covar_module.base_kernel.lengthscale\n",
    "sigma_2_n = likelihood.noise\n",
    "nu = model.covar_module.data_covar_module.base_kernel.nu\n",
    "print(lengthscale, sigma_2_n, nu, Omega, sep='\\n')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot the predictions of the model, with variance bands"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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bI/b7Nmzefvtt0lISGDHjh0ATJkyhW+++QaA0tJSoqKiyM7OJicnh379+tG3b18ARowY0WbHbEVERFpTcnIyBw8epLCwsK2HIs0kJCSE5OTkFnl2iwW3WbNmMWfOHGbMmOG79uqrr/r+/fbbb8dms/l+7t27d5sVsxMREWkrgYGB9OzZs62HIX6ixYLbqFGjfP3MjmUYBitXrmTjxo0t9XoRERGRDqdN9rh9/PHHJCYmcvrpp/uu7d+/n8GDBzN69Gg+/vjjthiWiIiISLvWJnXcVqxYwbRp03w/JyUl8cMPPxAbG8u2bduYOHEiO3fuPKohbK309HTS09MBtB9ARERETimtPuPmdrt5/fXXmTJliu9acHAwsbGxwJEqy7179+bbb7894f1paWlkZWWRlZVFfHx8q4xZREREpD1o9eD2/vvvc8YZZxx12qKwsBCPxwPAd999x549e+jVq1drD01ERESkXWux4DZt2jTOOeccvvnmG5KTk1m6dCkAGRkZRy2TAnz00UcMGjSIs846i6uvvpolS5YQExPTUkMTERER8Usmw48r/qWmppKVldXWwxARERFpVHPkFnVOEBEREfETCm4iIiIifkLBTURERMRPKLiJiIiI+AkFNxERERE/oeAmIiIi4icU3ERERET8hIKbiIiIiJ9QcBMRERHxEwpuIiIiIn5CwU1ERETETyi4iYiIiPgJBTcRERERP6HgJiIiIuInFNxERERE/ISCm4iIiIifUHATERER8RMKbiIiIiJ+QsFNRERExE8ouImIiIj4CQU3ERERET+h4CYiIiLiJxTcRERERPyEgpuIiIiIn1BwExEREfETCm4iIiIifkLBTURERMRPKLiJiIiI+AkFNxERERE/0WLBbfbs2SQkJDBgwADftfnz59OlSxdSUlJISUlh3bp1vl9bsGABp512Gn379uU///lPSw1LRERExG+1WHCbNWsW77777nHXb7vtNrKzs8nOzmb8+PEAfP3112RkZLBz507effddbrrpJjweT0sNTURERMQvtVhwGzVqFDExMU367Nq1a5k6dSrBwcH07NmT0047ja1bt7bU0ERERET8UqvvcVu8eDGDBg1i9uzZHD58GIBDhw7RtWtX32eSk5M5dOhQaw9NREREpF1r1eB24403sm/fPrKzs0lKSuL2228HwDCM4z5rMplO+Iz0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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmcAAAF3CAYAAADgjOwXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xl4lOW9//H3M3syyWSBACFhlS0hYY0gVhFQKLQqKKgov4oWt1papR4vEY9Ha1tc6tLaWivVWnpc8CgCSl2qICK41FAUE/YtEJbsezKZycz8/sCZhk0gySST8Hldlxcymed57iFc8OG+7+/3NgKBQAARERERiQimth6AiIiIiPyHwpmIiIhIBFE4ExEREYkgCmciIiIiEUThTERERCSCKJyJiIiIRBCFMxEREZEIonAmIiIiEkEUzkREREQiiMKZiIiISASxtPUATkfnzp3p3bt3Ww9DRERE5JT27t1LcXFxk69vF+Gsd+/eZGdnt/UwRERERE4pKyurWddrWVNEREQkgiiciYiIiEQQhTMRERGRCNIu9pyJiIi0Z16vl/z8fNxud1sPRVqQw+EgNTUVq9XaovdVOBMREQmz/Px8YmNj6d27N4ZhtPVwpAUEAgFKSkrIz8+nT58+LXpvLWuKiIiEmdvtplOnTgpmHYhhGHTq1Ckss6EKZyIiIq1AwazjCdf3VOFMRETkLFBQUMB1111H3759GTlyJGPGjGHZsmUArFmzhri4OIYPH05aWhq//OUvj7t+7969REVFMWzYMNLT07ntttvw+/1NHs/f/vY35s6dC8Cf//xn/v73v5/0vXv37uWVV14J/Tw7O5uf//znTX52pFM4ExER6eACgQDTpk1j7Nix7N69mw0bNrBkyRLy8/ND77nwwgvZuHEj2dnZvPTSS2zYsOG4+5xzzjl89dVXbNq0ic2bN7N8+fKjvu7z+Zo0vttuu43rr7/+pF8/NpxlZWXx9NNPN+lZ7YHCmYiISAe3evVqbDYbt912W+i1Xr168bOf/ey49zqdTkaOHMmuXbtOej+LxcL555/Pzp07WbNmDePHj+e6664jMzMTgJdeeolRo0YxbNgwbr311lBoe/HFFxkwYAAXXXQR69evD93vwQcf5PHHHwdg586dXHLJJQwdOpQRI0awa9cu5s+fzyeffMKwYcN46qmnWLNmDZdeeikApaWlTJs2jSFDhnDeeeexadOm0D1//OMfM27cOPr27duuwpyqNUVERFrTnXfCV1+17D2HDYPf/e6kX87NzWXEiBGndauSkhI+//xz7r///pO+p7a2llWrVvHQQw8B8K9//YucnBz69OnDli1beO2111i/fj1Wq5Xbb7+dl19+mYkTJ/LAAw+wYcMG4uLiGD9+PMOHDz/u3rNmzWL+/PlcccUVuN1u/H4/jzzyCI8//jgrV64EjizDBj3wwAMMHz6c5cuXs3r1aq6//nq++vbXd+vWrXz00UdUVVUxcOBAfvKTn7R424twUDgTERE5y/z0pz9l3bp12Gw2vvzySwA++eQThg8fjslkYv78+QwePPi463bt2sWwYcMwDIOpU6cyZcoU1qxZw6hRo0LtJFatWsWGDRs499xzAairq6NLly588cUXjBs3jqSkJACuueYatm/fftT9q6qqOHDgAFdccQVwpI/Yqaxbt46lS5cCMGHCBEpKSqioqADghz/8IXa7HbvdTpcuXSgoKCA1NbUpv2StSuFMRESkNX3HDFe4DB48OBRgAJ555hmKi4uPOqD7wgsvDM1MnUxwz9mxnE5n6P8DgQCzZ8/m4YcfPuo9y5cvP2V1YyAQ+M6vn+41wefY7fbQa2azmYaGhjO+f1vQnjMREZEObsKECbjdbp599tnQa7W1tWF51sUXX8wbb7xBYWEhcGRPWF5eHqNHj2bNmjWUlJTg9Xp5/fXXj7vW5XKRmpoaKjSor6+ntraW2NhYqqqqTvi8sWPH8vLLLwNHljs7d+6My+UKy2drLQpnIiIiHZxhGCxfvpyPP/6YPn36MGrUKGbPns2jjz7a4s9KT0/n17/+NZMmTWLIkCFMnDiRQ4cOkZyczIMPPsiYMWO45JJLTroH7n//9395+umnGTJkCOeffz6HDx9myJAhWCwWhg4dylNPPXXU+x988EGys7MZMmQI8+fPZ/HixS3+mVqbEWjKHGIry8rKIjs7u62HISIi0iRbtmwhLS2trYchYXCi721zc4tmzkREREQiiMKZiIiISARROBMRERGJIApnIiIiIhFE4UxEREQkgiiciYiIiEQQhTMREZGzxLJlyzAMg61btzbrPjfccANvvPHGd75n4cKFR/38/PPPb9KzGh+KfuzrhmGwc+fO0GtPPfUUhmGcURuLv/3tb8ydO7fZ72lJCmciIiJniVdffZULLriAJUuWhP1Zx4azTz/9tMWfkZmZedRneeONN0hPT2/x57Q2hTMREZGzQHV1NevXr+eFF144KtCsWbOGcePGMWPGDAYNGsSsWbNC51U+9NBDnHvuuWRkZHDLLbccd47lqlWrQoeUA3zwwQdceeWVzJ8/n7q6OoYNG8asWbMAiImJCb3vscceIzMzk6FDhzJ//nwA/vKXv3DuuecydOhQpk+fflrHS02bNo0VK1YAsHv3buLi4kIHq8ORMJqZmUlGRgb33HNP6PUXX3yRAQMGcNFFF7F+/frQ60VFRUyfPp1zzz2Xc88996ivtSYdfC4iItKK7rzzzhMeHt4cw4YN43enOFB9+fLlTJ48mQEDBpCYmMi///3v0BFKGzduJDc3l+7du/O9732P9evXc8EFFzB37lz+53/+B4Af/ehHrFy5kssuuyx0zwkTJvDTn/6UoqIikpKSePHFF7nxxhu57LLL+OMf/3jCz/nuu++yfPlyvvjiC6KjoyktLQXgyiuv5Oabbwbgv//7v3nhhRf42c9+9p2fyeVy0aNHD3JyclixYgXXXHMNL774IgAHDx7knnvuYcOGDSQkJDBp0iSWL1/O6NGjeeCBB9iwYQNxcXGMHz+e4cOHA3DHHXcwb948LrjgAvbt28f3v/99tmzZcjrfghalmTMREZGzwKuvvsrMmTMBmDlzJq+++mroa6NGjSI1NRWTycSwYcPYu3cvAB999BGjR48mMzOT1atXk5ube9Q9DcPgRz/6ES+99BLl5eV89tlnTJky5TvH8eGHH3LjjTcSHR0NQGJiIgA5OTlceOGFZGZm8vLLLx/3rJOZOXMmS5YsYfny5UfN4n355ZeMGzeOpKQkLBYLs2bNYu3atXzxxReh1202G9dcc81RY5s7dy7Dhg3j8ssvp7Ky8qQHroeTZs5ERERa0almuMKhpKSE1atXk5OTg2EY+Hw+DMPgscceA8But4feazabaWhowO12c/vtt5OdnU2PHj148MEHcbvdx907OFPmcDi46qqrsFi+O1oEAgEMwzju9RtuuIHly5czdOhQ/va3v7FmzZrT+myXXXYZd999N1lZWbhcrqOeczInej6A3+/ns88+Iyoq6rSeHS6aORMREeng3njjDa6//nry8vLYu3cv+/fvp0+fPqxbt+6k1wSDWOfOnamurj5pdWb37t3p3r07v/71r7nhhhtCr1utVrxe73HvnzRpEn/9619De8qCy5pVVVUkJyfj9Xp5+eWXT/uzRUVF8eijj3Lfffcd9fro0aP5+OOPKS4uxufz8eqrr3LRRRcxevRo1qxZQ0lJCV6vl9dff/2osf3xj38M/byll59Pl8KZiIhIB/fqq68eteQHMH36dF555ZWTXhMfH8/NN99MZmYm06ZN49xzzz3pe2fNmkWPHj2OqpS85ZZbGDJkSKggIGjy5MlcfvnlZGVlMWzYsFCbjF/96leMHj2aiRMnMmjQoDP6fDNnzgztnwtKTk7m4YcfZvz48QwdOpQRI0YwdepUkpOTefDBBxkzZgyXXHLJUdc9/fTTZGdnM2TIENLT0/nzn/98RuNoKUbgu+b9IkRWVtYZ9SwRERGJJFu2bCEtLa2thxE2c+fOZfjw4cyZM6eth9LqTvS9bW5u0Z4zERERabKRI0fidDp54okn2nooHYbCmYiIiDTZhg0b2noIHY72nImIiIhEEIUzERGRVtAOtnjLGQrX91ThTEREJMwcDgclJSUKaB1IIBCgpKQEh8PR4vfWnjMREZEwS01NJT8/n6KiorYeirQgh8NBampqi99X4UxERCTMrFYrffr0aethSDuhZU0RERGRCKJwJiIiIhJBFM5EREREIojCmYiIiEgEUTgTERERiSAKZyIiIiIRJKzh7KmnnmLw4MFkZGRw7bXX4na72bNnD6NHj6Z///5cc801eDyecA5BREREpF0JWzg7cOAATz/9NNnZ2eTk5ODz+ViyZAn33HMP8+bNY8eOHSQkJPDCCy+EawgiIiIi7U5YZ84aGhqoq6ujoaGB2tpakpOTWb16NTNmzABg9uzZLF++PJxDEBEREWlXwhbOUlJS+K//+i969uxJcnIycXFxjBw5kvj4eCyWIwcTpKamcuDAgXANQURERKTdCVs4KysrY8WKFezZs4eDBw9SU1PDu+++e9z7DMM44fWLFi0iKyuLrKwsnUUmIiIiZ42whbMPP/yQPn36kJSUhNVq5corr+TTTz+lvLychoYGAPLz8+nevfsJr7/lllvIzs4mOzubpKSkcA1TREREJKKELZz17NmTzz//nNraWgKBAKtWrSI9PZ3x48fzxhtvALB48WKmTp0ariGIiIiItDthC2ejR49mxowZjBgxgszMTPx+P7fccguPPvooTz75JP369aOkpIQ5c+aEawgiIiIi7Y4RCAQCbT2IU8nKyiI7O7uthyEiIiJySs3NLTohQERERCSCKJyJiIiIRBCFMxEREZEIonAmIiIiEkEUzkREREQiiMKZiIiISARROBMRERGJIApnIiIiIhFE4UxEREQkgiiciYiIiEQQhTMRERGRCKJwJiIiIhJBFM5EREREIojCmYiIiEgEUTgTERERiSAKZyIiIiIRROFMREREJIIonImIiIhEEIUzERERkQiicCYiIiISQRTORERERCKIwpmIiIhIBFE4ExEREYkgCmciIiIiEUThTERERCSCKJyJiIiIRBCFMxEREZEIonAmIiIiEkEUzkREREQiiMKZiIiISARROBMRERGJIApnIiIiIhFE4UxEREQkgiiciYiIiEQQhTMRERGRCKJwJiIiIhJBFM5EREREIojCmYiIiEgEUTgTERERiSAKZyIiIiIRROFMREREJIIonImIiIhEEIUzERERkQiicCYiIiISQRTORERERCKIwpmIiIhIBFE4ExEREYkgCmciIiIiEUThTERERCSCKJyJiIiIRBCFMxEREZEIonAmIiIiEkEUzkREREQiSFjDWXl5OTNmzGDQoEGkpaXx2WefUVpaysSJE+nfvz8TJ06krKwsnEMQERERaVfCGs7uuOMOJk+ezNatW/n6669JS0vjkUce4eKLL2bHjh1cfPHFPPLII+EcgoiIiEi7ErZwVllZydq1a5kzZw4ANpuN+Ph4VqxYwezZswGYPXs2y5cvD9cQRERERNqdsIWz3bt3k5SUxI033sjw4cO56aabqKmpoaCggOTkZACSk5MpLCwM1xBERERE2p2whbOGhgb+/e9/85Of/ISNGzfidDrPaAlz0aJFZGVlkZWVRVFRUbiGKSIiIhJRwhbOUlNTSU1NZfTo0QDMmDGDf//733Tt2pVDhw4BcOjQIbp06XLC62+55Rays7PJzs4mKSkpXMMUERERiShhC2fdunWjR48ebNu2DYBVq1aRnp7O5ZdfzuLFiwFYvHgxU6dODdcQRERERNodSzhv/oc//IFZs2bh8Xjo27cvL774In6/n6uvvpoXXniBnj178vrrr4dzCCIiIiLtSljD2bBhw8jOzj7u9VWrVoXzsSIiIiLtlk4IEBEREYkgCmciIiIi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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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ldrzz1PBTkREpBOz2Ww4nU6FuxhhmiZOpxObzdYu6+uOnYiISCfmcDgoKSmhoqKio7cibcRms+FwONplbQU7ERGRTiw+Pp6+fft29DbkDKGjWBEREZEYoWAnIiIiEiMU7ERERERihIKdiIiISIxQsBMRERGJEQp2IiIiIjFCwU5EREQkRijYiYiIiMQIBTsRERGRGKFgJyIiIhIjFOxEREREYoSCnYiIiEiMULATERERiREKdiIiIiIxQsFOREREJEYo2ImIiIjECAU7ERERkRihYCciIiISIxTsRERERGKEgp2IiIhIjFCwExEREYkRCnYiIiIiMULBTkRERCRGKNiJiIiIxIgOC3Yej4dRo0YxdOhQLrjgAh555BEA9u/fT0FBAeeeey7Tpk3D5/MB4PV6mTZtGv3796egoIDi4uKO2rqIiIhIp9RhwS4xMZG1a9fyySefsH37dt588002b97MQw89xIMPPsiePXvIzMxkwYIFACxYsIDMzEz27t3Lgw8+yEMPPdRRWxcRERHplDos2BmGQWpqKgB+vx+/349hGKxdu5abb74ZgFmzZlFUVATAihUrmDVrFgA333wza9aswTTNjtm8iIiISCfUoXfsgsEgw4YNIzs7m/Hjx9OvXz8yMjKwWq0AOBwOSktLASgtLSUvLw8Aq9WK3W7H6XR22N5FREREOpsODXZxcXFs376dkpISPvjgA3bu3Hnc9xiGAXDCp3PhrzU1f/588vPzyc/Pp6Kiou03LSIiItJJdYqq2IyMDMaMGcPmzZupqakhEAgAUFJSQm5uLnD46d3BgwcBCAQC1NbWkpWVddxac+bMYevWrWzdupVu3bqdvg8hIiIi0sE6LNhVVFRQU1MDgNvt5u2332bgwIGMHTuW5cuXA7B48WImTZoEwMSJE1m8eDEAy5cvZ9y4cSd8YiciIiJytrJ21BsfOnSIWbNmEQwGCYVC3Hrrrdx4440MGjSI6dOn85Of/IThw4cze/ZsAGbPns3tt99O//79ycrK4uWXX+6orYuIiIh0SoYZw6Wl+fn5bN26taO3ISIiInJKbZFbOsUdOxERERFpPQU7ERERkRihYCciIiISIxTsRERERGKEgp2IiIhIjFCwExEREYkRCnYiIiIiMULBTkRERCRGKNiJiIiIxAgFOxEREZEYoWAnIiIiEiMU7ERERERihIKd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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (10, 6), facecolor='white', edgecolor='black')\n",
    "plt.plot(lb+(ub-lb)*np.array(test_x.flatten()), np.array(y_hat.mean[:,0]), color = 'red', label = 'GP Prediction')\n",
    "plt.plot(lb+(ub-lb)*np.array(test_x.flatten()), np.array(test_y[:,0]), color = 'black', label = 'Analytical Model')\n",
    "plt.scatter(lb+(ub-lb)*train_x, train_y[:,0], color = 'black', marker = '+', s = 100) \n",
    "plt.fill_between(lb+(ub-lb)*np.array(test_x.flatten()), lower[:,0].detach().numpy(), upper[:,0].detach().numpy(), color = 'grey', alpha=0.3)\n",
    "plt.legend(loc = 'best', prop={'size':10})\n",
    "plt.xlim([KC/2.0,2*KC])\n",
    "plt.xlabel('S')\n",
    "plt.ylabel('V')\n",
    "\n",
    "\n",
    "plt.figure(figsize = (10, 6), facecolor='white', edgecolor='black')\n",
    "plt.plot(lb+(ub-lb)*np.array(test_x.flatten()), np.array(y_hat.mean[:,1]), color = 'red', label = 'GP Prediction')\n",
    "plt.plot(lb+(ub-lb)*np.array(test_x.flatten()), np.array(test_y[:,1]), color = 'black', label = 'Analytical Model')\n",
    "plt.scatter(lb+(ub-lb)*train_x, train_y[:,1], color = 'black', marker = '+', s = 100) \n",
    "plt.fill_between(lb+(ub-lb)*np.array(test_x.flatten()), lower[:,1].detach().numpy(), upper[:,1].detach().numpy(), color = 'grey', alpha=0.3)\n",
    "plt.legend(loc = 'best', prop={'size':10})\n",
    "plt.xlim([KP/2.0,2*KP])\n",
    "plt.xlabel('S')\n",
    "plt.ylabel('V')\n",
    "\n",
    "\n",
    "plt.figure(figsize = (10, 6), facecolor='white', edgecolor='black')\n",
    "plt.plot(lb+(ub-lb)*np.array(test_x.flatten()), 2.0*np.array(y_hat.mean[:,0])- np.array(y_hat.mean[:,1]), color = 'red', label = 'GP Prediction')\n",
    "plt.plot(lb+(ub-lb)*np.array(test_x.flatten()), 2.0*np.array(test_y[:,0])-np.array(test_y[:,1]) , color = 'black', label = 'Analytical Model')\n",
    "plt.scatter(lb+(ub-lb)*train_x, 2*train_y[:,0]-train_y[:,1], color = 'black', marker = '+', s = 100) \n",
    "\n",
    "plt.fill_between(lb+(ub-lb)*np.array(test_x.flatten()), 2.0*lower[:,0].detach().numpy()-upper[:,1].detach().numpy() , 2.0*upper[:,0].detach().numpy()-lower[:,1].detach().numpy(), color = 'grey', alpha=0.3)\n",
    "plt.legend(loc = 'best', prop={'size':10})\n",
    "plt.xlim([KP/2.0,2*KC])\n",
    "plt.xlabel('S')\n",
    "plt.ylabel('$\\pi$');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Evaluate the covariance of the posterior"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "var_1 = np.diag(np.array(y_hat.covariance_matrix.detach().numpy()),0)[0:199:2]\n",
    "var_2 = np.diag(np.array(y_hat.covariance_matrix.detach().numpy()),0)[1:199:2]\n",
    "covar_12 = np.diag(np.array(y_hat.covariance_matrix.detach().numpy()),1)[0:199:2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/dez/opt/anaconda3/envs/malifice/lib/python3.6/site-packages/scipy/stats/_continuous_distns.py:547: RuntimeWarning: invalid value encountered in sqrt\n",
      "  sk = 2*(b-a)*np.sqrt(a + b + 1) / (a + b + 2) / np.sqrt(a*b)\n",
      "/Users/dez/opt/anaconda3/envs/malifice/lib/python3.6/site-packages/scipy/optimize/minpack.py:162: RuntimeWarning: The iteration is not making good progress, as measured by the \n",
      "  improvement from the last ten iterations.\n",
      "  warnings.warn(msg, RuntimeWarning)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEKCAYAAAD9xUlFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xt8lOWd9/HPLyeSQGyAxMpyMKgUBGSJRTw9ii4sBZcKWrbFagseHtyt1sO6W7WndX2qu+1arfpqZbUiyqOrlC4WhWq1HuqpClgVQd1SSkvUCkJFlISQ5Ld/zGEnkzmG3Mzkzvf9euXl3Pd9zT2/GYd8c13XzH2ZuyMiIgJQUugCRESkeCgUREQkTqEgIiJxCgUREYlTKIiISJxCQURE4hQKIiISp1AQEZE4hYKIiMSVFbqAfNXV1XlDQ0OhyxAR6VXWrVv3vrvXZ2vX60KhoaGBtWvXFroMEZFexcz+kEs7DR+JiEicQkFEROIUCiIiEtfr5hRE+op9+/bR1NRES0tLoUuRXqSyspJhw4ZRXl7erfsrFESKVFNTEzU1NTQ0NGBmhS5HegF3Z8eOHTQ1NTFy5MhunUPDRyJFqqWlhcGDBysQJGdmxuDBg/erd6lQECliCgTJ1/6+ZxQKkrf333+fn/70p4UuQ0QCoFCQvC1dupS5c+fy0UcfFboUEelhCgXJW2y8srW1tcCViEhPUyhI3tra2jr9VyST5uZmpkyZQnt7e3zfFVdcwdixY/nqV7+a17lOOeUUtmzZ0mX/bbfdxle+8pX49je/+U2+9KUvpTzHG2+8wciRI+no6ACgo6OD6dOnc88996Rsn8+5Y1pbWzn55JN75b8RhYLkTaEguXB3Ojo6WLx4MWeeeSalpaUAbN68meeee46NGzdy66239shjzZ8/n4ceeogPPviAhx9+mFWrVnH77benbHvkkUcyZswYHn74YQC+/vWvM3r0aL785S/v97ljKioqmDp1Kg888MD+PbEC0PcUJG+xMNi3b1+BK+lDLrsMXnmlZ885cSL84AcZm1x55ZUceuih8b+Ur7nmGmpqanjmmWfYunUrLS0tXHrppSxcuBCALVu2MHPmTE499VReeOEFHnzwQe69917uu+8+AN566y2mTZtGW1sbjY2NPPvss/Tv33+/n0p1dTVnnXUW3/jGN/j5z3/OY489RlVVVdr2l19+OTfddBP79u3jueee44knnuixc8fMmTOHq6++mrPPPrtbz6lQFAqSt9gwgHoK4Tdv3jwuu+yyeCgsW7aMRx55hHPPPZdBgwbR3NzMMcccw+c+9zkGDx4MRH7x33XXXfzoRz+itbWVzZs3E7vc/ejRo5k/fz4NDQ1ccMEFPVrreeedx5FHHsnPfvYzDj/88Ixtp0+fzhVXXMHVV1/N008/nfXbv/mcO2b8+PGsWbMm5/qLhUJB8qbhowLI8hd9UBobG9m2bRvvvPMO27dvZ+DAgYwYMYJrrrmGFStWALB161Z++9vfxkPh0EMP5bjjjgMiH1+ura3tdM7169cze/ZsNm7cyEsvvcTUqVOpra1l+/btXHfddezatYvly5fnXeu1115LfX19zu/LE044gcbGRoYMGdLtcyc/h5qamvix0tJSKioq2L17d6f9xU5zCpI3hULfMnfuXJYvX84DDzzAvHnzeOqpp3j88cd54YUXePXVV2lsbOz0DdrE4aCqqqou367dsGED48aNY9++fdx6662sWLGCAQMGcNhhh3HnnXd2q8bvf//7tLS0sGzZMm6++eac7rNx40YmTpy4X+dOfg7J9u7dS2VlZW5PokgoFCRvmlPoW+bNm8f999/P8uXLmTt3Lrt27WLgwIFUV1fz5ptv8utf/zrtfQcOHEh7e3s8GHbv3k15eTnV1dVs3bqVc889lyOOOILdu3d3u74nnniCu+66i7vvvptTTjmFDz/8kFcS5l+mTp3K22+/3eV+GzZsYPz48Z32JbfNdu5Mz2HHjh3U19d3+8J0haJQkLypp9C3jBs3jt27dzN06FCGDBnCjBkzaGtrY8KECXzrW9+KDxWlM336dJ599lkAXn/99fgv4lmzZjF37lxOO+00DjrooG7V9sc//pELLriAn/zkJ/EhmksvvZQfRIfbOjo62LRpE4MGDep0v61bt1JbW9vpr/vkttnOne05PPnkk5x22mndel4F5e696ufTn/60S2Gdf/75DvgLL7xQ6FJCbePGjYUuoUe8/PLLfs4552Rt9/777/uFF17ohx12mF9//fUp20yZMsV///vf5/zY69ev98svv7zH2+bijDPO8DfffLPHzpePVO8dYK3n8DtWE82SN/UUJB+NjY2ceuqptLe3x7+rkMrgwYNZtGhRjz72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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "lnspc = np.linspace(-5.0, 30, 100)\n",
    "\n",
    "ab,bb,cb,db = stats.beta.fit(var_1)  \n",
    "pdf_beta = stats.beta.pdf(lnspc, ab, bb, cb, db)  \n",
    "plt.plot(lnspc, pdf_beta, label='var($f_{*1}$ $\\|$ $X,Y,X_*$)', color='r')\n",
    "\n",
    "ab,bb,cb,db = stats.beta.fit(var_2)  \n",
    "pdf_beta = stats.beta.pdf(lnspc, ab, bb, cb, db)  \n",
    "plt.plot(lnspc, pdf_beta, label='var($f_{*2}$ $\\|$ $X,Y,X_*$)', color='k')\n",
    "\n",
    "ab,bb,cb,db = stats.beta.fit(covar_12)  \n",
    "pdf_beta = stats.beta.pdf(lnspc, ab, bb, cb, db)  \n",
    "plt.plot(lnspc, pdf_beta, label='covar($f_{*1}f_{*2}$ $\\|$ $X,Y,X_*$)', color=\"grey\", linestyle='--')\n",
    "\n",
    "plt.xlabel('uncertainty')\n",
    "plt.ylabel('density')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
